<?php

use think\facade\Route;

/** 声网 */
Route::group('live/agora', function () {
    Route::get('config',     'getAgoraConfig')->middleware(['withoutLogin']);
    Route::get('netless',    'getNetlessConfig')->middleware(['withoutLogin']);
    Route::group('room', function () {
        // 房间预设
        Route::post('config',       'createRoom');          // 创建房间
        Route::get('config',        'getRoomConfig');       // 查询房间配置
        Route::put('config',        'setRoomConfig');       // 更新房间配置
        // 房间直播
        Route::group('<section_id>', function () {
            Route::get('',                  'roomInfo');            // 房间用户信息
            Route::post('entry',            'entryRoom');           // 进入房间
            Route::get('users',             'roomUsers');           // 获取房间用户列表
            Route::put('chat/state',        'setUserChatState');    // 更新用户状态
            Route::post('chat/peer',        'sendPeerChat');        // 发送点对点消息
            Route::get('user/streams',      'getUserStreams');      // 获取指定房间内的所有用户和流列表
            Route::put('user/properties',   'setUserProperties');   // 设置用户属性
            Route::post('user/kick',        'kickUser');            // 踢出用户
            Route::get('sequences',         'getSequences');        // 获取信息通知列表
            Route::put('states',            'setRoomStates');       // 更新房间状态
            Route::get('streams',           'getStreams');          // 获取流列表
            Route::post('streams',          'createStreams');       // 创建流
        })
        ->pattern(['section_id' => '\d+'])
        ;
        // 消息通知
        Route::group('rtm', function() {
            Route::get('state',             'roomState');       // 房间状态改变
            Route::get('mute',              'roleMute');        // 禁用状态改变
            Route::get('chat',              'roomChat');        // 收到房间聊天消息
            Route::get('properties',        'roomProperties');  // 房间属性更新
            Route::get('user',              'userState');       // 用户状态改变
            Route::get('user/properties',   'userProperties');  // 用户属性更新
            Route::get('stream',            'channelStream');   // 流更新
            Route::get('extension',         'channelExtension');// 收到房间自定义消息
            Route::get('peer',              'userPeer');        // 收到点对点聊天消息
        });
    });
})->prefix('\app\course\service\live\LiveAgora@');

